package br.ufpe.cin.rgms.base.visitante.dao;

import java.util.List;

import org.hibernate.Criteria;
import org.hibernate.criterion.Restrictions;

import br.com.caelum.vraptor.ioc.Component;
import br.ufpe.cin.rgms.base.visitante.model.Visitante;
import br.ufpe.cin.rgms.core.dao.impl.GenericDaoHibernateImpl;

@Component
public class VisitanteDAO extends GenericDaoHibernateImpl<Visitante, Integer> {

	@Override
	protected Class<Visitante> getDomainClass() {
		return Visitante.class;
	}
	
	public List<Visitante> findAllByFilter(Visitante guest) {
		Criteria criteria = session.createCriteria(Visitante.class);
		
		if(guest !=null){
			if(guest.getNome()!=null && !guest.getNome().isEmpty()){
				criteria.add(Restrictions.like("nome", guest.getNome() + "%"));
			}			
			if(guest.getUniversidadeProveniente()!=null && !guest.getUniversidadeProveniente().isEmpty()){
				criteria.add(Restrictions.like("universidadeProveniente", guest.getUniversidadeProveniente() + "%"));
			}
			if(guest.getDataVisita()!=null){
				criteria.add(Restrictions.like("dataVisita", guest.getDataVisita() + "%"));
			}
		}
		return criteria.list();
	}
	
}
